﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Ecommerce.Model;

namespace Ecommerce.Admin.Paginas
{
    public partial class ListarProduto : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                CarregarProdutos();
                CarregarCategorias();
            }
        }

        protected void btnAdicionar_Click(object sender, EventArgs e)
        {
            Response.Redirect("GerenciarProdutos.aspx");
        }

        private void CarregarCategorias()
        {
            ddlCategoria.DataSource = (new CategoriaModel()).Listar();
            ddlCategoria.DataTextField = "cat_des_categoria";
            ddlCategoria.DataValueField = "cat_idt_categoria";
            ddlCategoria.DataBind();
            ddlCategoria.Items.Insert(0, new ListItem("Todos", ""));

        }

        private void CarregarProdutos()
        {
            ProdutoModel model = new ProdutoModel();
            FiltroProdutoModel filtro = new FiltroProdutoModel();

            if (!String.IsNullOrEmpty(txtCodProd.Text))
                filtro.CodigoProduto = txtCodProd.Text;

            if (!String.IsNullOrEmpty(txtNomProd.Text))
                filtro.NomeProduto = txtNomProd.Text;

            if (!String.IsNullOrEmpty(ddlCategoria.SelectedValue))
                filtro.IdentificadorCategoria = Convert.ToInt32(ddlCategoria.SelectedValue);
            else
                filtro.IdentificadorCategoria = null;

            List<tb_pro_produto> produtos = model.Listar(filtro);
            grvProdutos.DataSource = produtos;
            grvProdutos.DataBind();
        }

        protected void grvProdutos_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                var produto = (tb_pro_produto)e.Row.DataItem;
                e.Row.Cells[0].Text = produto.pro_cod_produto;
                e.Row.Cells[1].Text = produto.tb_cat_categoria.cat_des_categoria;
                e.Row.Cells[2].Text = produto.pro_nom_produto;

                if (produto.pro_flg_produto_disponivel)
                    e.Row.Cells[3].Text = "Publicado";
                else
                    e.Row.Cells[3].Text = "Não Publicado";

                LinkButton lkbEditar = (LinkButton)e.Row.FindControl("lkbEditar");
                lkbEditar.Text = "Editar";
                lkbEditar.PostBackUrl = "GerenciarProdutos.aspx?IdPro=" + produto.pro_idt_produto.ToString();
            }
        }

        protected void grvProdutos_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            CarregarProdutos();
            grvProdutos.PageIndex = e.NewPageIndex;
            grvProdutos.DataBind();
            //UpdatePanel1.Update();
        }

        protected void btnPesquisar_Click(object sender, EventArgs e)
        {
            CarregarProdutos();
        }
    }
}